Routing is an important step in the design of an integrated circuit. It generates wiring to interconnect pins while obeying the manufacturing design rules. After placement, the routing process determines the precise paths for nets on the chip layout to interconnect the pins on the circuit blocks. The most important objective of routing is to complete all the required connections. Other objectives, such as reducing the routing wire length and ensuring each net satisfies its required timing budget, have become essential for modern integrated circuit design. For many years, signal propagation delay in logic gates was the main contributor to circuit delay, while propagation delay in the wires was negligible. However, technology scaling has significantly increased the relative impact of propagation delay due to the wiring of an integrated circuit. This has increased the likelihood that a signal will not satisfy timing requirements and has also increased the probability of chip failure.